Certain data processing systems are configured to process several workloads simultaneously. For example, separate virtual data processing systems, such as separate virtual machines (VMs), configured on a single host data processing system often process separate workloads for different customers or applications.
In large scale data processing environments, such as in a data center, thousands of VMs can be operating on a host at any given time, and hundreds if not thousands of such hosts may be operational in the data center at the time. A virtualized data processing environment, such as the described data center, is often referred to as a “cloud” that provides computing resources and computing services to several customers on an as-needed basis.
VMs are installed or created on a compute node as needed for processing customer workloads, meeting service level requirements, and many other reasons. Furthermore, different configurations of VMs may be needed for different purposes. For example, when a VM is created just for providing a user a general purpose computing platform, the VM may be created only with the basic operating system and no applications. In another example, when a new VM has to provide application services, the VM may be created with an operating system and an application server configured thereon.
Similarly, many different configurations of VMs may be preconfigured as template images (templates). When a VM having a specific predetermined configuration has to be created on a compute node, a suitable template is selected from a template storage, such as a database or a file-system, and installed on the compute node to create a VM having the desired configuration.